<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/*********************
*@param Function Description:圖片生成縮略圖
*@param time: 2011-3-11
*@param Author:abin
*********************/
class Imagelib{
  public static $static_CI;
    //靜態直接調用.
  public static function resize_thumb($img_path,$width='',$height=NULL,$ratio=TRUE){
    if(!empty($img_path) && file_exists($img_path)){
      $thumb_img=str_replace('uploads','uploads_thumb',$img_path);
      $thumb_path=str_replace(basename($img_path),'',$thumb_img);
      $thumb_img_array=explode('.',$thumb_img);
      $new_thumb_img=$thumb_img_array[0].'_'.$width.'X'.$height.'.'.$thumb_img_array[1];
      $old_image = $img_path;
      if (!file_exists($new_thumb_img) || (filemtime($old_image) > filemtime($new_thumb_img))) {
        if(file_exists($new_thumb_img)){
            @unlink($new_thumb_img);
        }
        if(!file_exists($thumb_path)){
          self::mkdir_file($thumb_path);
        }
        list($width_orig, $height_orig) = getimagesize($old_image);
        if ($width_orig != $width || $height_orig != $height) {
          if(!$ratio){ //如果要用補白就是$ratio=FALSE 調用opencart的處理方式.
            $ratio=$ratio===FALSE?'':'w';
            require_once dirname(__FILE__) . '/image.php';
            $image = new Image($old_image);
            $image->resize($width, $height, $ratio);
            $image->save($new_thumb_img);
          }else{
            $config['image_library'] = 'gd2';//(必须)设置图像库
            $config['source_image'] = $img_path;//(必须)设置原始图像的名字/路径
            $config['dynamic_output'] = FALSE;//决定新图像的生成是要写入硬盘还是动态的存在
            $config['quality'] = '90%';//设置图像的品质。品质越高，图像文件越大
            $config['new_image'] =$thumb_img;//设置图像的目标名/路径。
            $old_imgs=getimagesize($img_path); //得到原圖的寬和高.
            $old_weight=$old_imgs[0]; //原圖寬度
            $old_height=$old_imgs[1]; //原圖高度.
            $old_weight<=$width?$config['width'] = $old_weight:$config['width'] = $width;//(必须)设置你想要得图像宽度。
            $old_height<=$height?$config['height'] = $old_height:$config['height'] = $height;//(必须)设置你想要得图像宽度。
            $config['create_thumb'] = TRUE;//让图像处理函数产生一个预览图像(将_thumb插入文件扩展名之前)
            $config['thumb_marker'] ="_".$width.'X'.$height;//指定预览图像的标示。它将在被插入文件扩展名之前。例如，mypic.jpg 将会变成 mypic_thumb.jpg
            $config['maintain_ratio'] = $ratio;//维持比例
            $config['master_dim'] = 'auto';//auto, width, height 指定主轴线
            self::$static_CI = &get_instance();
            self::$static_CI->load->library('image_lib');
            self::$static_CI->image_lib->initialize($config);
            if(self::$static_CI->image_lib->resize()){
              self::$static_CI->image_lib->clear();
              return $new_thumb_img;
            }else{
              return $img_path;
            }
          }
        } else {
          copy($old_image, $new_thumb_img);
        }
      }
      if(file_exists($new_thumb_img)){
        return $new_thumb_img;
      }else{
        return $img_path;
      }
    }
  }
  //创建文件夹.
  public static function mkdir_file($path){
    if(!file_exists($path)){
      self::mkdir_file(dirname($path));
      @mkdir($path,0777);
      @chmod($path, 0777);
    }
  }
  //刪除原圖
  public static function delete_image($path){
    if(file_exists($path)){
      @unlink($path);
    }
  }
   //刪除圖片文件
  public static function delete_thumb_image($path_image,$width='',$height=''){
    $image_array=explode('.',$path_image);
    $thumb_path=str_replace('uploads','uploads_thumb',$image_array[0]);
    if(!empty($width) && !empty($height)){
      $thumb_img=$thumb_path.'_'.$width.'X'.$height.'.'.$image_array[1];
      if(file_exists($thumb_img)){
          @unlink($thumb_img);
      }
    }else{ //不存在寬度 和 高度.
      $thumb_path=$thumb_path.'_*'.$image_array[1];
      $thumb_img_arr=glob($thumb_path);
      if(!empty($thumb_img_arr) && is_array($thumb_img_arr)){
        foreach($thumb_img_arr as $thumb_img){
          if(file_exists($thumb_img)){
            @unlink($thumb_img);
          }
        } //end foreach;
      } //end if $thumb_img_arr.
    }
   }
    //圖片重命名.
    public static function rand_imagename($img_name)
    {
      $image_array=explode(".",$img_name);
      $suffix_image=strtolower(end($image_array));
      return md5(uniqid(mt_rand())).".".$suffix_image;
    }
    //樓盤價格 格式化.
    public static function prices($price=''){
      if(!empty($price) && $price>0){
          if($price>=10000){
            return ($price/10000).'萬';
          }else{
            return number_format($price,0,'.',',').'元';
          } 
      }else{
        return '--';
      }
    }
}